When the Replicat process in Oracle GoldenGate abends with error code OGG-02615, it indicates an issue related to data mapping between the source and target databases. This error typically occurs when the Replicat process encounters data that does not conform to the defined mapping rules. Here’s how you can troubleshoot and address this issue:
It failed to start, and after checking the report file, I found the below error.
ERROR OGG-02615 Login to the database as user ggadmin failed because of error ORA-28001: the password has expired
Below are the standard practices to troubleshoot any abended process issues:
- Review Replicat Parameters
- Review Error Details
- Examining Trail Files
- Verifying data consistent
- etc
Now let’s review the report file of the process:
2024-03-15 11:29:59 INFO OGG-06153 FIPS 140 support has been enabled. Process 28570 is using compliant shared libraries to perform encryption for the rest of its execution.
***********************************************************************
Oracle GoldenGate Delivery for Oracle
Version 21.12.0.0.3 OGGCORE_21.12.0.0.0OGGRU_PLATFORMS_231115.1435_FBO
Oracle Linux 7, x64, 64bit (optimized), Oracle Database 21c and lower supported versions on Nov 15 2023 19:25:58
Copyright (C) 1995, 2023, Oracle and/or its affiliates. All rights reserved.
Starting at 2024-03-15 11:29:59
***********************************************************************
Operating System Version:
Linux
Version #2 SMP Fri Jan 19 12:49:30 PST 2024, Release 4.14.35-2047.533.3.el7uek.x86_64
Node: inst-prod-vn0ajcqilrfv
Machine: x86_64
soft limit hard limit
Address Space Size : unlimited unlimited
Heap Size : unlimited unlimited
File Size : unlimited unlimited
CPU Time : unlimited unlimited
Process id: 28570
Description:
***********************************************************************
** Running with the following parameters **
***********************************************************************
2024-03-15 11:29:59 INFO OGG-03059 Operating system character set identified as UTF-8.
2024-03-15 11:29:59 INFO OGG-02695 ANSI SQL parameter syntax is used for parameter parsing.
2024-03-15 11:29:59 INFO OGG-01360 REPLICAT is running in Parallel mode.
REPLICAT RJDQA
USERIDALIAS CRDSADWQA DOMAIN OracleGoldenGate
Source Context :
SourceModule : [ggdb.ora.OraRepConnUtil]
SourceID : [../gglib/ggdbora/OraRepConnUtil.cpp]
SourceMethod : [openDataSource]
SourceLine : [95]
ThreadBacktrace : [13] elements
: [/u01/ogg/bin/../lib/libgglog.so(CMessageContext::AddThreadContext())]
: [/u01/ogg/bin/../lib/libgglog.so(CMessageFactory::CreateMessage(CSourceContext*, unsigned int, ...))]
: [/u01/ogg/bin/../lib/libgglog.so(_MSG_LoginName_String(CSourceContext*, int, ggs::gglib::ggapp::CDBObjName<(DBObjType)11> const&, char const*, CMessageFactory::MessageDisposition))]
: [/u01/ogg/bin/replicat()]
: [/u01/ogg/bin/replicat(odbc_param(char*, char*, ggs::gglib::ggapp::ReplicationContextParams const&))]
: [/u01/ogg/bin/replicat(get_infile_params(ggs::gglib::ggapp::ReplicationContextParams&, ggs::gglib::ggdatasource::DataSourceParams&, ggs::gglib::ggdatatarget::DataTargetParams&, ggs::gglib::ggmetadata::MetadataContext&))]
: [/u01/ogg/bin/replicat()]
: [/u01/ogg/bin/replicat(ggs::gglib::MultiThreading::MainThread::ExecMain())]
: [/u01/ogg/bin/replicat(ggs::gglib::MultiThreading::Thread::RunThread(ggs::gglib::MultiThreading::Thread::ThreadArgs*))]
: [/u01/ogg/bin/replicat(ggs::gglib::MultiThreading::MainThread::Run(int, char**))]
: [/u01/ogg/bin/replicat(main)]
: [/lib64/libc.so.6(__libc_start_main)]
: [/u01/ogg/bin/replicat()]
2024-03-15 11:30:03 ERROR OGG-02615 Login to the database as user ggadmin failed because of error ORA-28001: the password has expired.
Source Context :
SourceModule : [ggdb.ora.ocicpp.err]
SourceID : [ggdbora/ocicpp/OCIErrorHandler.cpp]
SourceMethod : [dpiErr]
SourceLine : [133]
ThreadBacktrace : [19] elements
: [/u01/ogg/bin/../lib/libgglog.so(CMessageContext::AddThreadContext())]
: [/u01/ogg/bin/../lib/libgglog.so(CMessageFactory::CreateMessage(CSourceContext*, unsigned int, ...))]
: [/u01/ogg/bin/../lib/libgglog.so(_MSG_Int32_String_String(CSourceContext*, int, int, char const*, char const*, CMessageFactory::MessageDisposition))]
: [/u01/ogg/bin/replicat(ggs::gglib::ggocicpp::OCIErrorHandler::dpiErr(dpi::Exception&) const)]
: [/u01/ogg/bin/replicat(ggs::gglib::ggocicpp::OCIConnection::connect(ggs::gglib::ggdbconnection::DBConnectionParams const&))]
: [/u01/ogg/bin/replicat(ggs::gglib::ggocicpp::OCIEnvironment::createConnection(ggs::gglib::ggdbconnection::DBConnectionParams const&))]
: [/u01/ogg/bin/replicat(ggs::gglib::ggocicpp::ORAConnection::initConn(ggs::gglib::ggdbconnection::DBConnectionParams const&, ULibCharSet, ULibCharSet))]
: [/u01/ogg/bin/replicat(ggs::gglib::ggocicpp::ORARepConnection::makeConnection(ULibCharSet, ULibCharSet))]
: [/u01/ogg/bin/replicat(ggs::gglib::ggocicpp::ORARepConnection::createRepConnection(ggs::gglib::ggdbconnection::DBConnectionParams const&, ULibCharSet, ULibCharSet))]
: [/u01/ogg/bin/replicat(ggs::gglib::ggdbora::OraRepConnUtil::openDataSource(ggs::gglib::ggdbapi::DBAuthParams&))]
: [/u01/ogg/bin/replicat(odbc_param(char*, char*, ggs::gglib::ggapp::ReplicationContextParams const&))]
: [/u01/ogg/bin/replicat(get_infile_params(ggs::gglib::ggapp::ReplicationContextParams&, ggs::gglib::ggdatasource::DataSourceParams&, ggs::gglib::ggdatatarget::DataTargetParams&, ggs::gglib::ggmetadata::MetadataContext&))]
: [/u01/ogg/bin/replicat()]
: [/u01/ogg/bin/replicat(ggs::gglib::MultiThreading::MainThread::ExecMain())]
: [/u01/ogg/bin/replicat(ggs::gglib::MultiThreading::Thread::RunThread(ggs::gglib::MultiThreading::Thread::ThreadArgs*))]
: [/u01/ogg/bin/replicat(ggs::gglib::MultiThreading::MainThread::Run(int, char**))]
: [/u01/ogg/bin/replicat(main)]
: [/lib64/libc.so.6(__libc_start_main)]
: [/u01/ogg/bin/replicat()]
2024-03-15 11:30:03 ERROR OGG-00664 OCI Error ORA (status = 28001-ORA-28001: the password has expired
).
2024-03-15 11:30:03 ERROR OGG-01668 PROCESS ABENDING.
After reviewing the log, it is observed that the Password has expired, and the user account status is below
Changed the password since the account is expired
After changing the password at the Database, now we should apply in OGG configuration like below
OGG (https://127.0.0.1:7123 ORA-X1) 11> ALTER CREDENTIALSTORE REPLACE USER ggadmin@(DESCRIPTION=(TRANSPORT_CONNECT_TIMEOUT=3)(CONNECT_TIMEOUT=60)(RECV_TIMEOUT=120)(retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=bmjgquen.adb.us-ashburn1.oraclecloud.com))(CONNECT_DATA=(COLOCATION_TAG=DVOCIADLPOGG01)(FAILOVER_MODE=(TYPE=SESSION)(METHOD=BASIC)(OVERRIDE=TRUE))(service_name=ge56ab843aa8863_crdsadwqa_low.adb.oraclecloud.com))(security=(MY_WALLET_DIRECTORY=”/u02/connections/ocid1.goldengateconnection.oc1.iad.amaaaaaalbyzsdqad6luj44tzwfo7nid7nsbqcqshcr4cfut46wlpzsxdmgq/wallet”)(ssl_server_dn_match=no))) PASSWORD 0r@Kleadm2024 ALIAS ORA-X1 DOMAIN OracleGoldenGate
2024-03-18T18:17:46Z INFO OGG-15114 Credential store altered.
OGG (https://127.0.0.1:7123 ORA-X1) 12> DBLOGIN USERIDALIAS CRDSADWQA
Successfully logged into database.
Now start the replicate process:
Note: Whenever the ggadmin user password expires on the target side, or In case of password change at the database level due to security reasons, then we need to change it at the GoldenGate level as well as above.